// 引入axios
import axios from 'axios'
import {useUserStore} from '@/stores'
// 导入Element-plus 错误提示
import { ElMessage } from 'element-plus'
import router from '@/router'

const baseURL = 'http://big-event-vue-api-t.itheima.net'


const instance = axios.create({
  // TODO 1. 基础地址，超时时间
  baseURL,
  timeout:10000
})


// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // TODO 2. 携带token
    const useStore=useUserStore()
    // 如果有token 就在请求的时候再请求头携带token
    if(useStore.token){
        config.headers.Authorization=useStore.token
    }
    return config
  },
  (err) => Promise.reject(err)
)



// 响应拦截器
instance.interceptors.response.use(
  (res) => {
    // TODO 3. 处理业务失败
    // TODO 4. 摘取核心响应数据
    if(res.data.code==0){
        return res
    }
    // 处理错误提示，抛出错误
    ElMessage.error(res.data.message || '服务异常')
    return Promise.reject(res.data)
  },
  (err) => {
    // TODO 5. 处理401错误 - 权限不足 或者token过期
    // if(err.response?.status === 401 ) return router.push('/login')

    // 处理默认错误提示，只要给提示就行
    // ElMessage.error(res.response.data.message || '服务异常')
    // return Promise.reject(res.data)
  }
)

export default instance
export {baseURL}